#include <iostream>
using namespace std;

/*
    const修饰成员变量
    1.初始化只有两种写法
    写法1：定义类的时候，立马赋初始值，C++11新增的特性
    写法2：构造函数的参数列表中初始化const修饰的成员变量
*/

class Circle
{
public:
    Circle(float r) : pi(3.14) // 写法2：构造函数的参数列表中初始化const修饰的成员变量
    {
        this->r = r;
    }

private:
    float r;
    const float pi; // 常量成员变量必须在构造函数初始化列表中初始化
    // const float pi = 3.14; // 写法1: 定义类的时候，立马赋初始值
};

int main()
{
    Circle c1(5.0);
    // c1.pi = 3.1415926; // 常量成员变量不能修改
    return 0;
}
